package com.pro.controller;

import com.pro.pojo.JsComment;
import com.pro.pojo.JsMicrocircle;
import com.pro.pojo.JsonData;
import com.pro.service.CommentService;
import com.pro.utils.SensitiveWordsUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

/**
 * @ClassName: CommentController
 * @Author: Kai
 * @DATE: 2022/2/3
 * @TIME: 下午 01:46
 */
@RestController
@RequestMapping("/comment")
public class CommentController {
    @Autowired
    private CommentService commentService;

    /* 功能描述: <br>
    * 〈查看评论数量〉
    *
    * @param jsComment
    * @return: com.pro.pojo.JsonData
    * @Author: Kai
    * @Date: 2022/2/16 下午 03:41
    */
    @RequestMapping("/getCountComment")
    public JsonData getCountComment(JsComment jsComment){
        List<Map<String, Object>> countComment = commentService.getCountComment(jsComment);
        return countComment.size() > 0 ? JsonData.buildSuccess(countComment) : JsonData.buildError("没查询到");
    }

    /* 功能描述: <br>
    * 〈查看全部评论内容〉
    *
    * @param jsComment
    * @return: com.pro.pojo.JsonData
    * @Author: Kai
    * @Date: 2022/2/16 下午 03:41
    */
    @RequestMapping("/getAllComments")
    public JsonData getAllComments(JsComment jsComment){
        List<JsComment> allComments = commentService.getAllComments(jsComment);
        return JsonData.buildSuccess(allComments);
    }

    /* 功能描述: <br>
    * 〈修改评论信息〉
    *
    * @param jsComment
    * @return: com.pro.pojo.JsonData
    * @Author: Kai
    * @Date: 2022/2/17 上午 08:40
    */
    @RequestMapping("/updateComment")
    public JsonData updateComment(JsComment jsComment){
        Boolean updateComment = null;
        try {
            updateComment = commentService.updateComment(jsComment);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return updateComment ? JsonData.buildSuccess(updateComment) : JsonData.buildSuccess("修改失败");
    }

    /* 功能描述: <br>
    * 〈查看所有评论内容〉
    *
    * @param jsComment
    * @return: com.pro.pojo.JsonData
    * @Author: Kai
    * @Date: 2022/2/17 上午 11:53
    */
    @RequestMapping("/getAllCommentContent")
    public JsonData getAllCommentContent(JsComment jsComment){
        List<JsComment> allCommentContent = commentService.getAllCommentContent(jsComment);
        List<JsComment> listFilter = SensitiveWordsUtil.getListFilter(allCommentContent);
        return listFilter.size() > 0 ? JsonData.buildSuccess(listFilter) : JsonData.buildSuccess("没有查询到");
    }

    /* 功能描述: <br>
    * 〈添加一条评论〉
    *
    * @param jsComment
    * @return: com.pro.pojo.JsonData
    * @Author: Kai
    * @Date: 2022/2/21 上午 10:28
    */
    @RequestMapping("/addComment")
    public JsonData addComment(JsComment jsComment){
        Boolean addComment = commentService.addComment(jsComment);
        return addComment ? JsonData.buildSuccess(addComment) : JsonData.buildSuccess("添加失败");
    }

    /* 功能描述: <br>
    * 〈根据id获取微圈信息〉
    *
    * @param id
    * @return: com.pro.pojo.JsonData
    * @Author: Kai
    * @Date: 2022/2/21 下午 01:49
    */
    @RequestMapping("/getMicrocircleById")
    public JsonData getMicrocircleById(Integer id){
        JsMicrocircle microcircleById = commentService.getMicrocircleById(id);
        return microcircleById != null ? JsonData.buildSuccess(microcircleById) : JsonData.buildSuccess("添加失败");
    }


}
